package com.wcj.array;


import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;

/**
 * 编写一种算法，若M × N矩阵中某个元素为0，则将其所在的行与列清零。
 * 输入：
 * [
 *   [1,1,1],
 *   [1,0,1],
 *   [1,1,1]
 * ]
 * 输出：
 * [
 *   [1,0,1],
 *   [0,0,0],
 *   [1,0,1]
 * ]
 */
public class 零矩阵 {

    public static void main(String[] args) {
        int[][] matrix = new int[][]{{0,1,2,0},{3,4,5,2},{1,3,1,5}};
        setZeroes(matrix);
    }

    public static void setZeroes(int[][] matrix) {
        ArrayList<int[]> tmp = new ArrayList<>();
        int index = 0;
        for (int i = 0;i < matrix.length; i++){
            for (int j = 0; j < matrix[i].length; j++){
                if (matrix[i][j] == 0){
                    tmp.add(new int[]{i,j});
                }
            }
        }
        for (int[] term : tmp) {
            matrix[term[0]] = new int[matrix[0].length];
            for (int i = 0; i < matrix.length; i++){
                matrix[i][term[1]] = 0;
            }
        }
    }
}
